Systems and methods to consistently generate web content

ABSTRACT

Methods and systems to consistently generate web content are described. The system receives a request, at a server machine, for an interface, from a client machine and generates the interface. The interface includes a plurality of view components that includes a first view component. The system generates the first view component by utilizing a data binding engine that executes on the server machine to apply at least one interface element to a first position on the interface based on a presentation template and first view component information. The first view component is updated on the client machine utilizing a data binding engine that executes on the client machine to apply the at least one interface element to the first position on the interface based on the presentation template and the first view component information. The interface element is visibly displayed at the client machine.

TECHNICAL FIELD

This disclosure relates to methods and systems supporting computing anddata processing systems. More particularly, systems and methods toconsistently generate web content are described.

RELATED ART

The Internet has become an indispensable tool to modern society. Websites are ubiquitous and offer a plethora of web content. It is highlydesirable that the web content be presented in a uniform and consistentmanner.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating a system, according to anembodiment, to generate web content that degrades a search engineoptimization score;

FIG. 2 is a block diagram illustrating a system, according to anembodiment, to remedy a degraded search engine optimization score;

FIG. 3 is a block diagram illustrating a system, according to anembodiment, to consistently generate web content;

FIG. 4A is a block diagram illustrating an interface, according to anembodiment;

FIG. 4B is a block diagram illustrating a static view component,according to an embodiment;

FIG. 4C is a block diagram illustrating a dynamic view component,according to an embodiment;

FIG. 4D is a block diagram illustrating a presentation template,according to an embodiment;

FIG. 5 is a block diagram illustrating a method, according to anembodiment, to consistently generate web content;

FIG. 6A is a block diagram illustrating a method, according to anembodiment, to generate an interface;

FIG. 6B is a block diagram illustrating a method, according to anembodiment, to generate interface elements associated with a dynamicview component; and

FIG. 7 shows a diagrammatic representation of a machine in the form of acomputer system within which may be executed a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein, according to an example embodiment.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of some example embodiments. It will be evident, however,to one of ordinary skill in the art that embodiments of the presentinvention may be practiced without these specific details.

As described further below, according to various example embodiments ofthe disclosed subject matter described and claimed herein, there isprovided a systems and methods to consistently generate web content.Various embodiments are described below in connection with the figuresprovided herein.

FIG. 1 is a block diagram illustrating a system 100, according to anembodiment, to generate web content that degrades a search engineoptimization score. The system 100 may include a client machine 102that, at operation A, receives a request for an interface 104 (e.g., webpage) from a user (not shown) and, at operation B, communicates therequest over a network 106 (e.g., Internet) to a server machine 108that, in turn, generates the interface 104 and, at operation C,communicates the interface 104 back over the network 106 to the clientmachine 102 where it is displayed on a monitor 110. The interface 104may include interface elements (e.g., text, graphics, and/or images,etc.) that are applied to various positions on the interface 104 anddisplayed on the monitor 110. In the present example, the interface 104,as communicated from the server machine 108, includes an image of a man.

At operation D, at the client machine 102, a browser (not shown) mayreceive another request from the user (not shown) that is processed by afirst software module 112 (e.g., JavaScript) that is included in theinterface 104. At operation E, the client machine 102 may respond to therequest by communicating a second request over the network 106 (e.g.,Internet) to the server machine 108 which, in turn, responds byidentifying or generating data and, at operation F, communicating thedata back over the network 106 to the client machine 102 where the firstsoftware module 112 receives the data, generates interface elementsbased on the data, applies the interface elements to the interface 104(e.g., coffee cup) and displays the interface elements on the monitor110.

The above described system 100 is found in the prior art and associatedwith a deficiency. The deficiency manifests when a search engine webcrawler that is executing at the client machine 102 requests theinterface 104 (e.g., web page) from the server machine 108 to utilizethe interface elements on the interface 104 to supplement the generationof a search index and for generating a search engine optimization score(SEO). An SEO score may be computed for the interface 104 by the webcrawler and is based on the contents of the interface 104. A web pagethat is associated with a high SEO score is desirable because the higherscore indicates that the web page is more likely to be returned insearch results by the search engine and more likely to be returned in aprominent position in search results. Conversely, a web page with a lowSEO score may not be returned in search results or returned in aposition not likely to be viewed by the user. Accordingly, a strong biasis present in the user community to maximize SEO scores.

In the present example, the interface 104 may be associated with adegraded SEO score. The interface 104 may be associated with a degradedSEO score because the interface elements that are generated with thefirst software module 112 are not available to the search engine webcrawler. The interface elements are not available to the search engineweb crawler because they are applied to the interface 104 after theinitial web page load. In summary, an SEO score for interface 104 may bedegraded because the search engine web crawlers compute SEO scoreswithout interface elements that are applied to the interface 104 inresponse to user interaction that is subsequent to the initial load ofthe web page.

FIG. 2 is a block diagram illustrating a system 200, according to anembodiment, to remedy a degraded SEO score. The system 200 correspondsto the system 100 shown in FIG. 1; accordingly, the same or similarreferences have been used to indicate the same or similar featuresunless otherwise indicated. The system 200 may remedy a degraded SEOscore by generating an interface 104 that includes the interfaceelements (e.g., hashed rectangle representing the coffee cup) thatotherwise would not be applied to the interface 104 unless requested bya user subsequent to the initial load of the web page. Accordingly, inthe system 200, an SEO score for the interface 104 is not degradedbecause the search engine web crawlers compute SEO scores with interfaceelements (e.g., hashed rectangle) that are otherwise only applied to theinterface 104 in response to subsequent user interaction. To this endthe system 200 includes a second software module 202 (e.g., JavaScript)that may execute on the server machine 108 to generate the interfaceelements (e.g., hashed rectangle) that otherwise would not be applied tothe interface 104 unless requested by user interaction subsequent to theinitial load of the web page. To avoid confusing users who access theinterface 104 via a browser, the interface elements that are beinggenerated by the second software module 202 are hidden and therefore arenot displayed on the monitor 110. The hashed rectangle indicates thatthe interface elements are hidden. Accordingly, SEO scores are improvedby generating the interface 104 to include interface elements (e.g.,hashed rectangle) that otherwise would not be applied to the interface104 on the initial load of the web page.

The above prior art solution nevertheless introduces new problems. Theabove solution introduces problems because it utilizes two softwaremodules to generate the same interface elements (e.g., coffee cup). Forexample, the second software module 202 is utilized by the servermachine 108 to initially generate the interface element (e.g., hashedrectangle) and the first software module 112 is utilized by the clientmachine 102 to generate the same interface elements (e.g., coffee) inresponse to a user interaction. Twice generating the same interfaceelements with different software modules results at least in thefollowing three problems. First, generation of the first software module112 and the second software module 202 doubles engineering time andcosts. Second, utilizing two software modules to generate the sameinterface elements may result in their inconsistency. Third, thedevelopment and maintenance of the first software module 112 istypically classified as a front-end task that is performed by one groupof software engineers and the development and maintenance of the secondsoftware module 202 is typically classified as a back-end task that isperformed by another group of software engineers. Lack of coordinationbetween the different groups may further increase the likelihood ofinconsistent web content.

FIG. 3 is a block diagram illustrating a system 300, according to anembodiment, to consistently generate web content. The system 300consistently generates the same interface elements for a particularposition on an interface by utilizing a single presentation templatethat is associated with the position. The same presentation template isloaded into data binding engines both on the client machine and theserver machine. The presentation template may include software thatcontrols the update of the interface and style information that controlsthe appearance of the interface elements, as applied to the interface.Accordingly, the data binding engines on the client machine and theserver machine execute the same software to receive data that is appliedto the interface via the same style information that determines style,colour, and position on the interface to consistently include theinterface elements on the interface.

The system 300 is now described in greater detail. The system 300 mayinclude a client machine 302 that communicates over a network 304(Internet) with a server machine 306 to request an interface 308 and torequest an update to the interface 308 (e.g., web page). The interface308 may include view components 310 that are respectively associatedwith interface elements and positions on the interface 308 to which theinterface elements are applied. The interface elements may be applied tothe interface 308 with a status of “HIDDEN” to suppress the display ofthe interface elements or with a status of “VISIBLE.” The viewcomponents 310 may include static view components 312 that are notassociated with an internal web page interaction with the user (e.g., aninteraction with the user that causes an update to the interface 308without reloading the entire interface 308), and dynamic view components314 that are associated with an internal web page interaction with theuser. The dynamic view components 314 may include a presentationtemplate (not shown) that includes a view component module (not shown)and style information (not shown). The view component module and thestyle information may be loaded into a data binding engine 316. The viewcomponent module may be executed by the data binding engine 316 tointeract with the user, request data in the form of view componentinformation from the server machine 306, generate interface elementsbased on the data, and apply the interface elements to the interface308. The style information may be utilized to control the location andappearance of the associated interface elements on the interface 308.This operation may be embodied as an asynchronous JavaScript and XML(AJAX) remote function call. AJAX is a group of interrelated webdevelopment techniques used on the client-side to create asynchronousweb applications. In an AJAX embodiment, web applications may send datato, and retrieve data from, the server machine 306 (in the background)without interfering with the display and behavior of the existinginterface 308 (e.g., web page). In one embodiment the data in the formof view component information may be retrieved using the XMLHttpRequestobject, as understood by those skilled in the art. Notwithstanding thename, AJAX, the use of XML is not required. In one embodiment JavaScriptObject Notation (JSON) may be utilized instead of XML. Further, requestsfor the data do not need to be asynchronous. AJAX is not a singletechnology, but a group of technologies. Hypertext Markup Language(HTML) and Cascading Style Sheets (CSS) may be used in combination tomark up and style the interface elements that are displayed on theinterface 308 on the monitor 310 at the client machine 302. Further, theDocument Object Model (DOM) may be accessed with JavaScript todynamically display, and to allow the user to interact with, theinformation presented as understood by those skilled in the art. In oneembodiment, JavaScript and the XMLHttpRequest object may be utilized toexchange data asynchronously between a browser 307 and the servermachine 306 to avoid full interface 308 (e.g., web page) reloads. Thebrowser 307 may be embodied as the Internet Explorer browser developedby Microsoft Corporation of Redmond, Wash. State). The browser 307 mayinclude the data binding engine 316 which may be embodied as the JavaScript Engine developed by Netscape formerly based in Mountain View,Calif. or the ActionScript Engine developed by Adobe of San Jose, Calif.The data binding engine 316 may be utilized to respond to an internalweb page interaction with a user (e.g., AJAX function call) that causesan update to the interface 308.

The server machine 306 may include a communication module 317, aninterface generation module 318, the data binding engine 316, andcouplets of presentation templates 320 and view component informationmodules 322 that respectively correspond to the dynamic view components314 on the interface 308. The communication module 317 may receiverequests and communicate messages over the network 304. The interfacegeneration module 318 may generate the interface 308 responsive toreceiving a request from the client machine 302. In the present example,the interface 308 is illustrated as including an image of a man and ahashed rectangle which represents a hidden coffee cup. The interfacegeneration module 318 may utilize the data binding engine 316,presentation template 320 and the view component information module 322to include interface elements in a hidden form (e.g., hidden coffee cup)on the interface 308.

The data binding engine 316 was previously described on the client sideand substantially operates the same on the server side. One differenceis that on the server side, the data binding engine 316 may receive thedata in the form of view component information by a local invocation ofthe view component information module 322 rather than over the network304.

The presentation template 320 was previously described and is describedmore fully later in this document.

The view component information module 322 may receive requests for dataand communicate the data in the form of view component informationeither locally to the data binding engine 316 on the server machine 306or over the network 304 to the data binding engine 316 on the clientside. The data may be utilized to generate interface elements.

FIG. 4A is a block diagram illustrating an interface 308, according toan embodiment. The interface 308 may be organized according to positionsof varying shape that are contiguous or overlapping. Each position maybe associated with a view component (e.g., static view component ordynamic view component) that is associated with one or more interfaceelements and a view component status. The view component status may beconfigured to “VISIBLE” or “HIDDEN.” The “VISIBLE” status may cause avisible rendering of the corresponding interface elements in theassociated position on the interface 308, and the hidden status maycause an invisible rendering (e.g., hidden) of the interface elements.Accordingly, a position 400 that is associated with a view componentstatus 402 of “HIDDEN” may include interface elements that are invisibleto a user but present to a search engine web crawler for computation ofan SEO score.

FIG. 4B is a block diagram illustrating a static view component 312,according to an embodiment. The static view component 312 may includeinterface elements 406 that are applied to a position 400 (FIG. 4A) onthe interface 308 based on position information 407 that identifies aparticular position 400 on the interface 308. The static view component312 is not associated with an internal web page interaction with theuser (e.g., an interaction with the user that causes an update to theinterface 308 without reloading the interface 308).

FIG. 4C is a block diagram illustrating a dynamic view component 314,according to an embodiment. The dynamic view component 314 may includeinterface elements 406 that are applied to a position 400 on theinterface 308. The dynamic view component 314 may further include apresentation template 320. The dynamic view component 314 is associatedwith an internal web page interaction with the user.

FIG. 4D is a block diagram illustrating a presentation template 320,according to an embodiment. The presentation template 320 may include aview component module 412 and style information 414. The view componentmodule 412 is specific to a particular dynamic view component 314 andmay be utilized to generate and apply interface elements 406 to theinterface 308. The view component module 412 may be loaded into a databinding engine 316 (shown in FIG. 3) and executed locally or remotely toretrieve data from the view component information module 322, generatethe interface elements 406 based on the data, apply the interfaceelements 406 to a position 400 on the interface 308, and display theinterface elements 406 on the monitor 310. The style information 414 mayalso be loaded into the data binding engine 316 (FIG. 3) and utilized bythe view component information module 322 to determine the presentationof the interface elements 406. The style information 414 may includestyle information 414 that determines the style of the interfaceelements 406 including colour information 418 that determines the colourof the interface elements 406 and position information 407 thatidentifies the position 400 of the interface elements 406 on theinterface 308.

FIG. 5 is a block diagram illustrating a method 500, according to anembodiment, to consistently generate web content. Illustrated on theleft are operations that may be performed by the client machine 302 andillustrated on the right are operations that may be performed by theserver machine 306.

Request for Interface

The method 500 may commence at operation 502 on the client machine 302with the browser 307 communicating a request for the interface 308 overthe network 304 to the client machine 302.

At operation 504, at the server machine 306, the communication module317 may receive the request, and at operation 506 the interfacegeneration module 318 may generate the interface 308, as described morefully in method 600 of FIG. 6A. At operation 508, the communicationmodule 317 may communicate the interface 308 over the network 304 to theclient machine 302.

At operation 510, at the client machine 302, the browser 307 may receivethe interface 308. At operations 512, 514, 516, and 518 the browser 307may generate and display the interface elements 406. It will beappreciated that the interface 308 includes interface elements 406 thatcorrespond to dynamic view components 314 that are hidden and notdisplayed. The presence of the hidden interface elements 406 on theinterface 308 may contribute to an improved SEO score, as previouslydescribed in this document.

Request for Update to Interface

At operation 520, at the client machine 302, the browser 307 may receivean internal web page selection from a user that is associated with aparticular dynamic view component 314. At operation 522, the browser 307may identify a presentation template 320 based on the selected dynamicview component 314 and load the presentation template 320 into the databinding engine 316 on the client machine 302. At operation 524, thebrowser 307 may retrieve the data for the dynamic view component 314 bysending a request (e.g., AJAX request) to the server machine 306. Theupdate may include a dynamic view component identifier that identifiesthe selected dynamic view component 314.

At operation 526, at the server machine 306, the communication module317 may receive the request for the update. At operation 528, thecommunication module 317 may identify the view component informationmodule 322 based on the dynamic view component identifier and invoke theview component information module 322 to generate data in the form offirst view component information. At operation 530, the communicationmodule 317 may communicate an update to the client machine 302 thatincludes the first view component information.

At operation 532, at the client machine 302, the browser 307 may receivethe update that includes the data. At operation 534, the browser 307 maygenerate interface elements 406 associated with the selected dynamicview component 314. For example, the browser 307 may load the data intothe data binding engine 316 and invoke the view component module 412 inthe data binding engine 316, as further described by method 650 in FIG.6B.

At operation 536, the browser 307 may display the interface elements 406associated with the dynamic view component 314 that is identified withthe dynamic view component identifier without reloading the interface308 and the method 500 ends.

FIG. 6A is a block diagram illustrating a method 600, according to anembodiment, to generate an interface 308. The method 600 may beperformed on the server machine 306 in response to a request for theinterface 308. At operation 602, the interface generation module 318 mayadvance to the next position 400 on the interface 308. At decisionoperation 606, the interface generation module 318 may identify whetherthe current position 400 is associated with a dynamic view component314. For example, the interface generation module 318 may identifywhether the view component (e.g., static view component 312 or dynamicview component 314) includes position information 407 that matches thecurrent position 400. If the interface generation module 318 identifiesthe current position 400 is associated with a dynamic view component314, then processing continues at operation 608. Otherwise processingcontinues at operation 612.

At operation 608, the interface generation module 318 may configure thecurrent position 400 to hide the interface elements 406 from beingdisplayed. For example, the interface generation module 318 may storethe value “HIDDEN” in the view component status 402 for the associatedposition 400 on the interface 308. At operation 610, the interfacegeneration module 318 may load the presentation template 320 thatcorresponds to the current position 400 into the data binding engine 316on the server machine 306. At operation 612, the interface generationmodule 318 may retrieve the data for the dynamic view component 314 thatcorresponds to the current position 400 by invoking the appropriate viewcomponent information module 322 which returns the data. At operation614, the interface generation module 318 may generate interface elements406 associated with the dynamic view component 314 associated with thecurrent position 400. For example, the interface generation module 318may load the data into the data binding engine 316 and invoke the viewcomponent module 412 in the data binding engine 316, as furtherdescribed by method 650 of FIG. 6B. At operation 616, the interfacegeneration module 310 may store the presentation template 320 on theinterface 308. Recall that the client machine 302 may utilize thepresentation template 320 to perform an internal web page interface withthe user (e.g., AJAX remote function call). At operation 618, theinterface generation module 318 may generate interface 406 elements fora static view component 312 and apply the interface elements 406 to theinterface 308. At decision operation 620, the interface generationmodule 318 may determine whether more positions 400 are present on theinterface 308. If more positions 400 are present on the interface 308,then processing continues at operation 602. Otherwise processingterminates.

FIG. 6B is a block diagram illustrating a method 650, according to anembodiment, to generate interface elements associated with a dynamicview component 314. The method 650 commences at operation 652 with theview component module 412 generating the interface elements 406 based onthe data and the style information 414 in the presentation template 320.For example, the view component module 412 may utilize the colourinformation 418 in the style information 414 to uniformly generate theinterface elements 406. At operation 654, the view component module 412may apply the generated interface elements 406 to the appropriateposition on the interface 308 based on the position information 422 inthe presentation template 320 and the method 650 ends.

The interface 308 was described in embodiments that include a userinterface that may include dynamic view components 314 and static viewcomponents 312; however, it will be appreciated by those skilled in theart that the interface 308 may also be embodied as a machine interface(e.g., SGML) including machine view components, an audio interfaceincluding audio view components, a kinetic interface including kineticview components, or some other interface.

FIG. 7 shows a diagrammatic representation of a machine in the exampleform of a computer system 700 within which a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in client-servernetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a server computer,a client computer, a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 700 includes a processor 702 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), orboth), a main memory 704 and a static memory 706, which communicate witheach other via a bus 708. The computer system 700 may further include avideo display unit 710 (e.g. a liquid crystal display (LCD) or a cathoderay tube (CRT)). The computer system 700 also includes an input device712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), adisk drive unit 716, a signal generation device 718 (e.g., a speaker)and a network interface device 720.

The disk drive unit 716 includes a machine-readable medium 722 on whichis stored one or more sets of instructions 724 (e.g., software)embodying any one or more of the methodologies or functions describedherein. The instructions 724 may also reside, completely or at leastpartially, within the main memory 704, the static memory 706, and/orwithin the processor 702 during execution thereof by the computer system700. The main memory 704 and the processor 702 also may constitutemachine-readable media. The instructions 724 may further be transmittedor received over a network 726 via the network interface device 720.

Applications that may include the apparatus and systems of variousembodiments broadly include a variety of electronic and computersystems. Some embodiments implement functions in two or more specificinterconnected hardware modules or devices with related control and datasignals communicated between and through the modules, or as portions ofan application-specific integrated circuit. Thus, the example system 700is applicable to software, firmware, and hardware implementations. Inexample embodiments, a computer system (e.g., a standalone, client orserver computer system) configured by an application may constitute a“module” that is configured and operates to perform certain operationsas described herein. In other embodiments, the “module” may beimplemented mechanically or electronically. For example, a module maycomprise dedicated circuitry or logic that is permanently configured(e.g., within a special-purpose processor) to perform certainoperations. A module may also comprise programmable logic or circuitry(e.g., as encompassed within a general-purpose processor or otherprogrammable processor) that is temporarily configured by software toperform certain operations. It will be appreciated that the decision toimplement a module mechanically, in the dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.Accordingly, the term “module” should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired) or temporarily configured(e.g., programmed) to operate in a certain manner and/or to performcertain operations described herein. While the machine-readable medium722 is shown in an example embodiment to be a single medium, the term“machine-readable medium” should be taken to include a single medium ormultiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) that store the one or more sets ofinstructions 724. The term “machine-readable medium” shall also be takento include any medium that is capable of storing, encoding or carrying aset of instructions for execution by the machine and that cause themachine to perform any one or more of the methodologies of the presentdescription. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, opticaland magnetic media, and carrier wave signals. As noted, the software maybe transmitted over a network using a transmission medium. The term“transmission medium” shall be taken to include any medium that iscapable of storing, encoding or carrying instructions for transmissionto and execution by the machine, and includes digital or analoguecommunications signal or other intangible medium to facilitatetransmission and communication of such software.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of ordinary skill in the art upon reviewing the abovedescription. Other embodiments may be utilized and derived therefrom,such that structural and logical substitutions and changes may be madewithout departing from the scope of this disclosure. The figuresprovided herein are merely representational and may not be drawn toscale. Certain proportions thereof may be exaggerated, while others maybe minimized. Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

Thus, systems and methods to consistently generate web content aredisclosed. While the present disclosure has been described in terms ofseveral example embodiments, those of ordinary skill in the art willrecognize that the present disclosure is not limited to the embodimentsdescribed, but may be practiced with modification and alteration withinthe spirit and scope of the appended claims. The description herein isthus to be regarded as illustrative instead of limiting.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

What is claimed is:
 1. A method comprising: receiving a request, over anetwork at a server machine, for an interface, from a client machine;generating the interface at the server machine, the generating includinggenerating a plurality of view components on the interface including afirst view component, the generating of the first view component on theinterface including utilizing a data binding engine executing on theserver machine to apply at least one interface element to a firstposition on the interface based on a presentation template and firstview component information, the at least one interface element beinghidden from display at the client machine; communicating the interface,over the network, to the client machine; receiving a request forupdating the first position on the interface; and communicating anupdate to the client machine, the update including the first viewcomponent information, the updating of the first view component on theinterface including utilizing a data binding engine that executes on theclient machine to apply at least one interface element to the firstposition on the interface based on the presentation template and thefirst view component information, the at least one interface elementbeing visibly displayed at the client machine.
 2. The method of claim 1,wherein the generating the interface at the server machine includesgenerating the interface to include the presentation template.
 3. Themethod of claim 1, wherein the presentation template includes styleinformation and a view component module.
 4. The method of claim 2,wherein the generating of the first view component at the server machineincludes loading the data binding engine with the presentation template.5. The method of claim 3, wherein the generating of the first viewcomponent at the server machine includes utilizing the data bindingengine to execute the view component module.
 6. The method of claim 1,wherein the generating of the first view component at the server machineincludes loading the data binding engine with the first view componentinformation.
 7. The method of claim 1, wherein the generating of thefirst view component at the server machine includes utilizing the databinding engine to utilize style information to apply the first viewcomponent information to the first position on the interface.
 8. Themethod of claim 1, wherein the data binding engine that executes at theserver is a JavaServer Pages data binding engine and wherein the databinding engine that executes at the client machine is a JavaServer Pagesdata binding engine
 9. The method of claim 1, wherein the receiving ofthe request includes receiving an asynchronous JavaScript and XML (AJAX)request.
 10. A system comprising: a communication module to receive arequest, over a network at a server machine, for an interface, from aclient machine; and an interface generation module to generate theinterface at the server machine, the interface including a plurality ofview components that includes a first view component, the interfacegeneration module includes a data binding engine to execute on theserver machine to apply at least one interface element to a firstposition on the interface based on a presentation template and firstview component information, the at least one interface element is hiddenfrom display at the client machine, the communication module tocommunicate the interface, over the network, to the client machine andto receive a request for an update to the first position on theinterface, the communication module further to communicate the update tothe client machine, the update includes the first view componentinformation, the update causes a data binding engine to execute on theclient machine to apply the at least one interface element to the firstposition on the interface based on the presentation template and thefirst view component information, the at least one interface elementbeing visibly displayed at the client machine.
 11. The system of claim10, wherein the interface includes the presentation template.
 12. Thesystem of claim 10, wherein the presentation template includes styleinformation and a view component module.
 13. The system of claim 11,wherein the data binding engine is loaded with the presentationtemplate.
 14. The system of claim 12, wherein the data binding engineexecutes the view component module.
 15. The system of claim 10, whereinthe data binding engine is loaded with the first view componentinformation.
 16. The system of claim 10, wherein the data binding engineutilizes style information to apply the first view component informationto the first position on the interface.
 17. The system of claim 10,wherein the data binding engine that executes at the server is aJavaServer Pages data binding engine and wherein the data binding enginethat executes at the client machine is a JavaServer Pages data bindingengine
 18. The system of claim 10, wherein the communication module isto receive an asynchronous JavaScript and XML (AJAX) request.
 19. Anon-transitory machine-readable medium storing instructions that, whenexecuted by a machine, cause the machine to execute a method comprising:receiving a request, over a network at a server machine, for aninterface, from a client machine; generating the interface at the servermachine, the generating including generating a plurality of viewcomponents on the interface including a first view component, thegenerating of the first view component on the interface includingutilizing a data binding engine executing on the server machine to applyat least one interface element to a first position on the interfacebased on a presentation template and first view component information,the at least one interface element being hidden from display at theclient machine; communicating the interface, over the network, to theclient machine; receiving a request for updating the first position onthe interface; and communicating an update to the client machine, theupdate including the first view component information, the updating ofthe first view component on the interface including utilizing a databinding engine that executes on the client machine to apply the at leastone interface element to the first position on the interface based onthe presentation template and the first view component information, theat least one interface element being visibly displayed at the clientmachine.
 20. A system comprising: a communication module to receive arequest, over a network at a server machine, for an interface, from aclient machine; and a first means for generating the interface at theserver machine, the interface including a plurality of view componentsthat includes a first view component, the first means including a databinding engine to execute on the server machine to apply at least oneinterface element to a first position on the interface based on apresentation template and first view component information, the at leastone interface element being hidden from display at the client machine,the communication module to communicate the interface, over the network,to the client machine and to receive a request for an update to thefirst position on the interface, the communication module further tocommunicate the update to the client machine, the update including thefirst view component information, the update causing a data bindingengine to execute on the client machine to apply the at least oneinterface element to the first position on the interface based on thepresentation template and the first view component information, the atleast one interface element being visibly displayed at the clientmachine.